Gesture and motion operation control for multi-mode reading devices

ABSTRACT

A portable data reader and methods of operation for reading encoded data, such as optical code labels and RFID tags, from an object. The data reader includes a housing adapted for handheld operation and a touch screen display supported on the housing. The data reader further includes one or more reading engines each associated with a set of decoding instructions for configuring the reading engines to read data from the object. The reading engines are each associated with a unique control gesture that may be applied to the touch screen display to configure the data reader with a particular reading engine. The portable data reader includes a processing subsystem communicatively coupled to the touch screen and the reading engines and operable to detect whether a control gesture has been applied to the touch screen display or rocker keys and then to configure the data reader with the selected reading engine.

RELATED APPLICATION DATA

This application is a nonprovisional of and claims the benefit under 35U.S.C. §119(e) of U.S. Provisional Patent Application No. 61/586,599,filed Jan. 13, 2012, which is incorporated by reference herein in itsentirety.

BACKGROUND

The field of the disclosure generally relates to systems for reading anddecoding various optical code symbologies and RFID tag formats. Moreparticularly, the field of the disclosure relates to data readers havinga touch screen interface for configuring and triggering a particular setof optical code and RFID decoding parameters to apply during a readingor scanning event.

Optical reading systems are widely used to read data in the form ofoptical codes or other encoded symbols printed on various objects. Thesesystems may be used in a wide variety of applications, such as inventorycontrol and point-of-sale transactions in retail stores. Barcodes arejust one example of the many types of optical codes in use today. Themost common barcodes are one-dimensional or linear optical codes, wherethe information is encoded in one direction—the direction perpendicularto the bars and spaces. For example, one-dimensional (1D) barcodesymbologies may include Code 128, Code 29, Interleaved 2 of 5, matrix 2of 5, Universal Product Code (UPC), Extended Code 39, Code 93, UCC 128,Codabar, EAN/JAN, MSI, Zip+4, Pharmacode 39, RSS, Standard 2 of 5,Trioptic, DPBC POSTNET. Higher-dimensional optical codes, such as,two-dimensional matrix codes (e.g., MaxiCode) or stacked codes (e.g.,PDF 417), which are also sometimes referred to as “barcodes,” are alsoused for various purposes. Based on the type of barcode label that isbeing used, an appropriate set of decoding parameters is used toaccurately read and process the data.

Typically, a barcode label comprises a series of parallel dark bars ofvarying widths with intervening light spaces, also of varying widths.The information encoded in the barcode label is represented by thespecific sequence of bar and space widths. Optical reading systems mayemploy an optical reader that illuminates the barcode label and detectslight reflected from the bars and spaces of the code. One common opticalreader is a flying spot scanner in which a source of illumination, suchas a laser or LED, is moved across the barcode while a photodetector inthe optical reader monitors the reflected or backscattered light. Afterthe barcode data is received by the optical reader, the optical readermay decode the barcode data and store it or transmit it to anotherdevice for storage.

Another type of data reader is an imaging reader such as a CCD (chargecoupled device) or CMOS (complimentary metal oxide semiconductor) inwhich an entire line of the barcode image or a two-dimensional image ofa scan region is focused onto a detector array. The imaging readertypically includes a light source to illuminate the barcode to providethe required signal response. Once the signal has been received for theentire read region, it may be processed and decoded.

Yet another type of data reader does not use optical barcodes, butinstead reads electronic tags using radio waves, such as aradio-frequency identification (RFID) reader. An RFID system typicallyemploys at least two components, a “transponder” or “tag” which isattached to a physical item to be identified, and a “reader” which sendsan electromagnetic signal to the transponder and then detects aresponse. Typically, the reader emits an RF signal, which is received bythe transponder, after the transponder comes within an appropriaterange. In response, the transponder then sends its information via amodulated RF signal back to the reader. The reader detects thismodulated signal, and can identify the transponder by decoding themodulated signal. After identifying the transponder, the reader caneither store the decoded information or transmit the decoded signal to acomputer or other device.

Currently, data readers with multiple reading modes are available, wherethe data readers are capable of capturing and decoding optical barcodelabels, RFID tags, and other data types. Because a different set ofdecoding parameters is generally required to accurately read and processeach data type, these multiple mode data readers typically includefunctions to provide for toggling between the various reading modesprior to reading or scanning an object to ensure an accurate read. Suchdata readers may be useful in an environment where objects may containmixed barcode symbology and RFID tags, such as in a retail store orpackaging facility.

The present inventor has recognized a need for a data reader capable ofquickly and efficiently toggling between a variety of reading modes toreduce processing time and avoid incorrect reading of particular labelsand/or tags. In addition, the present inventor has recognized a need fora data reader that affords an operator the ability to quickly select aspecific set of decoding parameters to apply for a particular reading orscanning event.

SUMMARY

Methods and apparatuses relating to a portable data reader are disclosedfor improved data reader and processing of items bearing encoded data,such as barcode labels and RFID tags.

For example, one embodiment includes a portable data reader with areading engine for reading encoded data from an object. The readingengine is associated with a set of decoding instructions and with acontrol gesture keyed to the reading engine. The portable data readerfurther includes a touch screen display and a processing subsystemcommunicatively coupled to both the touch screen display and the readingengine. When the control gesture is applied to the touch screen display,the processing subsystem detects the control gesture, and in response,configures the data reader with the corresponding reading engine.

In other embodiments, the portable data reader includes a plurality ofreading engines, each assigned a unique control gesture to distinguishthe reading engines from one another. In such embodiments, theprocessing subsystem is configured to detect the applied control gesturecorresponding to one of the reading engines and thereafter configure thedata reader with the reading engine keyed to the applied controlgesture.

In some embodiments, the control gestures may include a tap with afinger or stylus instrument on the touch screen, or may include ascrolling or dragging event applied across the touch screen or to rockerkeys. In still other embodiments, the data reader may include anaccelerometer or tilt sensor and the control gesture may be related toactivation of the accelerometer, such as by rotating, tilting, shaking,or otherwise moving the data reader.

Additional aspects and advantages will be apparent from the followingdetailed description of preferred embodiments, which proceeds withreference to the accompanying drawings. The drawings depict only certainpreferred embodiments and are not to be considered as limiting innature.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a portable data reader having a touchscreen display.

FIG. 2 is a flow chart illustrating a method for operating the portabledata reader of FIG. 1.

FIG. 3 is a flow chart illustrating a method for reading data with theportable data reader of FIG. 1.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

With reference to the drawings, this section describes particularembodiments and their detailed construction and operation. Theembodiments described herein are set forth by way of illustration onlyand not limitation. The described features, structures, characteristics,and methods of operation may be combined in any suitable manner in oneor more embodiments. In view of the disclosure herein, those skilled inthe art will recognize that the various embodiments can be practicedwithout one or more of the specific details or with other methods,components, materials, or the like. For the sake of clarity andconciseness, certain aspects of components or steps of certainembodiments are presented without undue detail where such detail wouldbe apparent to those skilled in the art in light of the teachings hereinand/or where such detail would obfuscate an understanding of morepertinent aspects of the embodiments.

Certain embodiments may be capable of achieving various advantages,including one or more of the following: (1) providing a data reader withtouch screen, motion-sensing, and/or toggling capabilities for quicklyand easily activating various reader modes based on the barcodesymbology or presence of RFID tags in an object; and (2) providing aprogrammable data reader capable of detecting and responding to avariety of programmed control gestures for toggling between variousreading modes and configuration settings.

In the following description of the figures and any example embodiments,the system may be referred to in conjunction with use at a retailestablishment. It should be understood that such use is merely oneexample use for such a system. Other uses for a system with thecharacteristics and features described herein may be implemented, forexample, in an industrial location such as a parcel distribution (e.g.,postal) station or for processing inventory, as well as other suitableuses.

With reference to FIGS. 1-3, a portable data reader 100 may be used toread and process an optical label or RFID tag on an item during acheckout process, such as at a retail store or supermarket. In anexample operation, an operator activates the data reader 100 by ensuringthat the data reader 100 is powered on and then by pointing the datareader 100 at an object or scan area. Once activated, the operatorapplies a control gesture (e.g., a swipe, tap, scroll, shake, tilt) tothe data reader 100 to set a reader mode for a particular label or tagtype, such as a one-dimensional barcode, two-dimensional barcode, orRFID tag. Once the control gesture has been received and processed bythe data reader 100, the data reader 100 configures a reading engine 102in accordance with the chosen reader mode to properly capture the targetdata. Once the item has been processed, the data reader 100 maythereafter be reconfigured to a different reader mode, if necessary, byapplying a different control gesture to the data reader 100.

For example, if the item to be processed bears an RFID tag, the operatorapplies a control gesture to the data reader 100 corresponding to anRFID reader mode. After the data reader 100 detects and processes thecontrol gesture, the data reader 100 configures the reading engine 102to read and process an RFID tag. Once properly configured, the datareader 100 captures the RFID tag data from the item and the readingengine 102 processes the RFID tag data accordingly. Once the data hasbeen accurately captured, the data reader 100 may be reconfigured for adifferent reader mode by applying a different control gesture.

FIG. 1 illustrates a block diagram of the data reader 100, such as abarcode scanner, RFID reader, industrial Portable Data Terminal, or amulti-mode data reader (a multi-mode data reader being capable ofreading optical codes, RFID tags, and other data types), according toone embodiment. With reference to FIG. 1, the data reader 100 includes ahousing 101 suitable for protecting components (as discussed in detailbelow) of the data reader 100 therein and for supporting additionalcomponents, such as a keyboard 108 and a touch screen display 112, on anexterior surface of the housing 101. The housing 101 is preferablycompact and suited for portability and hand-held operation of the datareader 100.

The portable data reader 100 includes one or more reading engines 102,such as an optical label (or barcode) scanning engine, an RFID readingengine, or a multi-mode data reader capable of reading both/multipledata types. The reading engine 102 may read barcode symbols from aphysical object, information from an RFID tag, or both. In some exampleembodiments, the reading engine 102 may include a laser barcode scanengine available from Datalogic ADC, Inc. or other manufacturers. Inother embodiments, the reading engine 102 may include an RFID readingengine available from Datalogic ADC, Inc., SAT Corporation of Houston,Tex., or other manufacturers. As used herein, reading engines 102 mayencompass laser scanners or imaging scanners (such as CMOS or CCD-basedimagers).

The portable data reader 100 may include a processing unit 104. Theprocessing unit 104 may be any of various commercially availableprocessors or other logic machine capable of executing instructions,such as an Intel® XScale™ PXA310 624 MHz processor. Dual microprocessorsor other multi-processor architectures may also be employed as theprocessing unit 104.

A standard input controller 106 may be provided to receive user inputfrom a keyboard/keypad 108, a pointing device (not shown), or otherwired/wireless input devices. The input controller 106 may comprise auniversal interface driver application specific integrated circuit(UIDA) or other suitable circuits. Further details of an example UIDAcan be found in U.S. Pat. No. 6,877,663, which is incorporated byreference herein in its entirety. In some embodiments, other inputdevices 107 may be included, such as a microphone, digital camera,fingerprint scanner, touchpad, trackball, and tablet. While the inputdevices 107 may be integrated into the portable data reader 100 andcoupled to the processing unit 104 via the input controller 106, theinput devices 107 may also connect via other interfaces, such as one ormore connector(s) 109. The connector 109 may include one or more datainterfaces, bus interfaces, wired or wireless network adapters, ormodems for transmitting and receiving data. Accordingly, the inputcontroller 106 may include one or more of hardware, software, andfirmware to implement one or more protocols, such as stacked protocolsalong with corresponding layers, such as for example application layers(e.g., HTTP), transport layers (e.g., TCP), network layers (e.g., IP),and link layers (e.g., Ethernet). According to one embodiment, theconnector 109 functions as a serial port (e.g., RS232). However, theconnector 109 may also support other interfaces, such as a UniversalSerial Bus (USB) port, an Ethernet port, a parallel port, an IEEE 1394serial port, or an IR interface. The input controller 106 may alsosupport various wired, wireless, optical, and other communicationstandards.

The portable data reader 100 may present data, prompts, and otherwisecommunicate with a user via one or more touch screen display devices112, such as an integrated liquid crystal display (LCD), organiclight-emitting diode (OLED), cathode ray tube (CRT) display, or othersuitable display with touch screen capabilities. A display controller110 may drive the display device 112. In some embodiments, the portabledata reader 100 may further include a tilt sensor or accelerometer 142in communication with the processing unit 104 and configured to detectwhether the portable data reader 100 has been rotated, tilted, orshaken. In some embodiments, the tilt sensor 142 may be in communicationwith or electronically coupled to the display controller 110 such thatwhen the tilt sensor 142 is activated (e.g., the data reader 100 istilted), the display controller 110 triggers a message to display on thetouch screen display 112 notifying the user that the tilt sensor 142 hasbeen activated.

The portable data reader 100 may also include a network interface 114 tocommunicate with one or more other devices, such as a server, a hostcomputer, or a point-of-sale terminal via an external network (notshown). For example, data gathered by, or decoded by, the portable datareader 100 may be passed along to a server. The network interface 114may facilitate wired or wireless communication with other devices over ashort distance (e.g., Bluetooth™) or nearly unlimited distances (e.g.,the Internet). In the case of a wired connection, a data bus may beprovided using any protocol, such as IEEE 802.3 (Ethernet), advancedtechnology attachment (ATA), personal computer memory card internationalassociation (PCMCIA), and USB. A wireless connection may use low or highpowered electromagnetic waves to transmit data using any wirelessprotocol, such as Bluetooth™, IEEE 802.11b (or other WiFi standards),infrared data association (IrDa), and radio frequency identification(RFID). In addition, a modem module (not shown) or Ethernet module (notshown) may be coupled to the connector 109 to facilitate a WANnetworking environment.

The portable data reader 100 further includes a memory 116, which may beimplemented using one or more standard memory devices. The memorydevices may include, for instance, RAM 118, ROM 120, and EEPROM devices,and may also include magnetic or optical storage devices, such as harddisk drives, CD-ROM drives, and DVD-ROM drives. The portable data reader100 may also include an interface 122 coupled to an internal hard diskdrive 124. Interface 122 may also be coupled to removable memory, suchas flash memory, a magnetic floppy disk drive, an optical disk drive, oranother drive. Further, the interface 122 (and/or input controller 106)may be configured for external drive implementations, such as over aUSB, IEEE 1194, or PCMCIA connection.

In one embodiment, any number of program modules may be stored in one ormore drives 124 and RAM 118, including an operating system 126, one ormore application programs 128, other program modules 130 (such asinstructions to implement the methods described herein), data 132, filesystem 134, settings 136, and read data 138. All or portions of theprogram modules may also be cached in RAM 118. Any suitable operatingsystem 126 may be employed, such as Windows Embedded CE 6.0, WindowsEmbedded Handheld, Android, Linux, or other commercially available orproprietary operating systems.

The memory 116, the internal hard disk drive 124, or both, may alsostore a number of settings 136 for the portable data reader 100, whichmay include various symbology settings, device settings (e.g.,user-interface), and network settings. Additionally, the memory 116, theinternal hard disk drive 124, or both, may store read data 138 (e.g.,symbols and information read from barcodes and RFID tags) obtained bythe reading engine 102. Any of the foregoing may be stored within, orindexed by, a file system 134, which may be managed by the operatingsystem 126.

The above-described components, including the reading engine 102,processing unit 104, input controller 106, display controller 110,network interface 114, memory 116, and interface 122, may beinterconnected via a bus 140. While a bus-based architecture isillustrated in FIG. 1, other types of architectures are also suitable(e.g., one or more components may be directly coupled to one another).While the illustrated embodiment depicts one possible configuration of aportable data reader 100, it should be recognized that a wide variety ofhardware and software configurations may be provided. For example, otherversions of the portable data reader 100 may have less than all of thesecomponents or may contain other components. Other examples andadditional details regarding portable data readers may be found incommonly owned U.S. Pat. No. 7,273,179, issued Sep. 25, 2007, entitled“Portable Data Reading Device With Integrated Web Server ForConfiguration And Data Extraction,” which is incorporated herein byreference in its entirety.

FIG. 2 is a flow chart illustrating a method 200 for operating aportable data reader 100 according to one embodiment. With reference toFIG. 2, at step 210, the reading engine 102 may be configured withdecoding parameters and filters as desired. The various decodingparameters and filters chosen may depend on the specific reading engine102 being configured and used, such as an optical barcode scanningengine or an RFID reading engine. In some embodiments, the decodingparameters and filters may include one or more of the following:instructions for length of time to spend on decoding 1D and 2D labelsand or RFID tags, instructions for reading data of a specific length,instructions for minimum and maximum acceptable length for 1D and 2Dlabels and RFID tags, parameters relating to label/tag prefix andpostfix, decoding aggressiveness, RFID classes and other traditionalsymbology and/or RFID tag characteristics. These instructions may varyfor each of the different reading engines 102 based on, for instance,the inherent limitations and characteristics of each data type.

The reading engine 102 may be programmed and/or otherwise configured viaan input or control panel on the data reader 100, such as using thekeyboard/keypad 108 or other input devices 107. In other embodiments,the reading engine 102 may be configured remotely via connector 109,such as through a USB device, network interface 114, or using theinterface 122, such as through a hard disk or CD, or any other suitabledevice. Once entered or uploaded, the decoding parameters may be storedin memory 116 or the internal hard disk drive 124.

In step 220, once the various decoding parameters for the readingengines 102 have been entered and stored on the data reader 100, each ofthe reading engines 102 (e.g., 1D, 2D, RFID engines, or other decodingengines) and their associated decoding parameters, or a specific subsetof decoding parameters, are assigned a unique control gesture. Thecontrol gestures allow an operator of the portable data reader 100 tocall up a specific reading engine 102 and a desired set of decodingparameters simply by applying a particular control gesture to theportable data reader 100 (as will be explained in further detail in step240 below). The control gestures may be assigned to the reading engines102 and decoding parameters using any suitable programming techniques.Instructions for assigning the control gestures may be programmed to theportable data reader 100 using an input device, such as the keyboard108, or may otherwise be loaded using a connector 109, such as through aUSB device, Network Interface 114, or using the interface 122, such asthrough a hard disk or CD-Rom drive, or any other suitable device.

The following description includes example control gestures that may beassigned in step 220. It should be understood that the control gesturesdescribed herein are for illustrative purposes only and that differentcontrol gestures than those described herein may be assigned to thevarious settings or that numerous other control gestures notspecifically described herein may also be assigned in step 220 withoutdeparting from the principles of the disclosure.

In one embodiment, a unique control gesture may be assigned to triggereach of the reading engines 102 (or to trigger one reader mode in areading engine 102 with multiple reader modes, such as a dual opticalcode/RFID reader) depending on the type of encoded data that is to beprocessed. For example, in one configuration, the portable data reader100 may include four different reading engines 102, including 1D, 2D,imager, and RFID reading engines (or a single reading engine 102 witheach of these four reader modes). In such a configuration, a uniquecontrol gesture may be assigned to each of these reading engines 102.

In some embodiments, the control gestures may be assigned as illustratedin Table A below. In the following description, a flick control gestureis defined as including scrolling events and directional rapid touchevents performed on the touch screen display 112, and a pan controlgesture is defined as including a press, hold, and drag gesture eventperformed on the touch screen display 112. With reference to Table A, inone embodiment, a flick or pan control gesture from a central portion ofthe touch screen display 112 to the left may be associated with a 1Dreading engine; a flick or pan from the central portion to the right maybe associated with a 2D reading engine; a flick or pan from the centralportion in an upward direction may be associated with an imager readingengine; and a flick or pan from the central portion in a downwarddirection may be associated with an RFID reading engine. Otherembodiments may include additional control gestures to accommodateadditional reading engine types as necessary.

TABLE A Control Gestures According to One Embodiment Data Reader ModeControl Gesture 1D Optical Reader Flick gesture to the left 2D OpticalReader Flick gesture to the right RFID Reader Flick gesture downwardImaging Reader Flick gesture upward

In another embodiment, each decoding parameter, or a group or subset ofdecoding parameters, for a particular reading engine 102 is alsoassigned a unique control gesture to allow for a more customizedoperator experience. For example, each of the 1D and 2D reading enginesmay include additional specific control gestures for decoding parametersrelating to a particular length of code, symbology, prefix, postfix, andother typical scanning or reading characteristics. For instance, in oneexample configuration, after selection of a 1D reading engine, theoperator may then apply a second control gesture to the touch screen 112to select a particular set of decoding parameters to run with thereading engine 102. In such configurations, the touch screen 112 maydisplay a first screen prompting the operator to apply a control gestureto select a desired reading engine 102. Once that selection has beenmade, the touch screen 112 may thereafter display a second screenprompting the operator to apply a second control gesture to select a setof decoding parameters to run with the reading engine 102.

In other configurations, each unique control gesture may be assigned toa particular reading engine 102 that already contains a specific packageof decoding parameters associated therewith. For instance, in oneconfiguration, a flick to the left may be associated with a 1D barcodeengine which will only read Code 3 of 9 symbology labels of a specificor any length; and a flick to the right may be associated with a 1Dbarcode engine which will only read Code 128 symbology labels of aspecific or any length; and flicks in the upward and downward directionsmay be associated with a 1D barcode engine which will only read othercode symbologies of a specific length. In other embodiments, the RFIDreading engine can be configured in a similar fashion as the 1D engine,for example: a flick in the upward direction may be associated with theRFID reader reading RFID tags with a certain prefix and specific lengthand class, and a flick in the downward direction may associated withreading an RFID tag with a different prefix and different length andclass.

As mentioned previously, depending on the number of decoding parametersand filters that may be assigned to each reading engine 102, and theindividual preferences of the operator, the control gestures may be thesame or different than those described above.

In some embodiments, physical movement of the portable data reader 100may also be assigned (and interpreted by the data reader 100) as acontrol gesture. In such embodiments, the data reader 100 may include atilt sensor or accelerometer 142 coupled to the housing 101 of the datareader 100 and configured to detect physical movement of the data reader100, which may include tilting, rotating, or shaking of the portabledata reader 100. For instance, tilting the portable data reader 100 in adownward direction may be assigned and associated with reading RFID tagsof a certain class, prefix and length, while tilting the portable datareader 100 in an upward direction may be associated with reading RFIDtags with a different prefix and length. Similar movement or tiltcontrol gestures may be assigned to 1D and 2D reading engines 102.

In some embodiments, to avoid the tilt sensor 142 from interfering witha selection already entered by the operator, the tilt sensor 142 and/orthe processing unit 104 may be programmed to ignore readings from thetilt sensor 142 once a selection has been entered on the data reader100. Additionally, there may be debouncing timeout settings and/orconfiguration settings on the data reader 100 for tilt thresholds alongthe x, y, and/or z axes to avoid detection of inadvertent or unintendedtilting motions.

In yet other embodiments, control gestures on the keyboard 108, whichmay include rocker keys and other activation keys, may also beinterpreted and assigned as a control gesture in a similar fashion aspreviously described. For instance, one or more rocker keys may beassigned to trigger the 1D, 2D, imager, and RFID reading engine 102.

In still other embodiments, a combination of touch screen, motion, andkeyboard control gestures may be assigned to particular reading modessuch that the portable data reader 100 may interpret a combination ofcontrol gestures applied to the touch screen display 112, motion controlgestures detected by the tilt sensor 142, and input control gestures bythe keyboard 108 to allow for more operator customization. For instance,in one embodiment, the data reader 100 may be configured to allow for aselection between a 1D or 2D imager by applying an appropriate controlgesture to the touch screen display 112 as previously described. Inaddition, the tilt sensor 142 may be associated with the RFID reader,such that tilting of the data reader 100 in an upward directionconfigures the data reader 100 to read an RFID tag having a specificlength, while tilting the data reader 100 in a downward directionconfigures the data reader 100 to read an RFID tag having a differentlength. Finally, a rocker key on the keypad 108 may be associated withthe camera-based imaging reader such that activation of the rocker keyconfigures the data reader 100 for camera-based imaging. In suchconfigurations, the operator may apply a gesture on the touch screendisplay 112, tilt the data reader 100 to activate the tilt sensor 142,or press the rocker key on the keypad 108 to select a reader mode forthe data reader 100. In other embodiments, the various features andcomponents of the data reader 100 (e.g., the keyboard 108, the tiltsensor 142, and the touch screen display 112) may be assigned todifferent reader modes as desired.

In some embodiments, the control gestures are intuitively assigned so asto simplify the toggling process between the various settings for thereading engine 102 and decoding parameters. For instance, in oneembodiment (see Table B), the assigned control gesture for selecting a1D reading engine 102 may include a simple vertical swipe on the touchscreen display 112 with one finger so as to create a control gestureresembling a roman numeral one. In addition, the control gesture forselecting a 2D reading engine 102 may include a vertical swipe on thetouch screen display 112 using two fingers simultaneously in asubstantially parallel orientation so as to create a control gestureresembling a roman numeral two (i.e., a multi-touch gesture).

In other embodiments, the control gestures may include other single ormulti-touch gestures than those specifically described herein. In stillother embodiments, one or both of these control gestures can be made asdescribed but applied along a horizontal axis across the touch screendisplay 112. In addition, the assigned control gesture for selecting anRFID reader may include a single finger motion on the touch screendisplay in the shape of the letter “R.” Similarly, the assigned controlgesture for selecting a camera-based reader, such as an imager, may be asingle finger motion resembling the shape of the letter “C” (forcamera). Regarding choice of the letters “R” and “C” for an RFID readerand imager, respectively, it should be understood that in a differentlanguage, the names of these particular reader modes may begin with adifferent letter or character symbol, such that the intuitive controlgesture may instead be that particular letter or character.

TABLE B Control Gestures According to One Embodiment Data Reader ModeControl Gesture 1D Optical Reader Single swipe 2D Optical ReaderMulti-touch Swipe RFID Reader Letter “R” motion Imaging Reader Letter“C” motion

Next, in step 230, the operator initializes or activates the portabledata reader 100, such as by ensuring the portable data reader 100 isproperly powered on and then pointing it at an item bearing a barcodelabel or RFID tag, or by pointing it at a specific scan zone. In someinstances, the portable data reader 100 may undergo a hard reboot bycycling its power (e.g., turning the portable data reader off and thenback on) or a soft reboot (e.g., via restarting the portable datareader).

At step 240, the operator applies a control gesture to the portable datareader 100 to select a reading engine 102 and a particular decodingparameter or subset of decoding parameters for the reading engine 102 toprocess. As mentioned previously in step 220, the portable data reader100 is programmable to assign a unique control gesture to the readingengine 102 (capable of reading and decoding 1D barcodes, 2D barcodes,RFID tags, and other similar encoded data) and to each associateddecoding parameter or filter such that the operator can apply thecontrol gesture to select a particular reading engine 102 and aparticular set or subset of decoding parameters.

The following briefly describes an example operation for applying acontrol gesture to configure the data reader 100. During a scanningoperation, the operator will first typically determine the particulardata type carried by the item or object to be scanned. Once the operatorconfirms the particular data type carried by the item (e.g., a 2Dbarcode label), the operator applies the appropriate control gesture forthat data type (e.g., a multi-touch swipe resembling a roman numeral twoto select the 2D reading engine) to configure the data reader 100. Ifthe operator is also configuring any particular decoding parameters, theoperator may apply a swipe, flick, or other control gesture to selectthe desired decoding parameters. The operator may then proceed to readthe data from the item.

In some embodiments, to simplify use of the data reader 100, the touchscreen display 112 may include a legend or other feature visible to theoperator with information regarding the assigned control gestures forsome or all of the reading engine 102 and decoding parameterconfigurations. In some embodiments, prior to applying a controlgesture, the user may consult the legend or review control gestureoptions displayed on the touch screen display 112 to ensure that thedesired option is being applied. In other embodiments, the operator mayapply a combination of motion, touch screen, and keyboard controlgestures to select the desired reading engine 102 and decodingparameters.

In still other embodiments, the touch screen display 112 may provide aresidual indication of the control gesture (e.g., motion and/or letter)applied to the touch screen 112 to provide the operator with feedbackthat the data reader 100 has properly recognized a desired selection.

Next, at step 250, the operator ensures that desired settings (i.e.,reading engine 102 and decoding parameters) have been selected. Thetouch screen 112 may present a prompt to the operator allowing theoperator to confirm or deny that the selection was properly made. Insome instances, the operator may have erroneously applied a controlgesture for a different reading engine 102 or a different set ofdecoding parameters than intended. In other instances, the portable datareader 100 may have misinterpreted the applied control gesture andcalled up the incorrect reading engine 102 or decoding parameters. Inany case, if the desired mode is not selected and the operator does notwish to continue with the selected settings, the operator maycommunicate to the data reader 100 that the desired mode was notselected and thereafter return to step 240 and re-apply the controlgesture to select new settings.

In some embodiments, the operator may return to step 220 and reconfiguresome or all of the assigned control gestures, if desired. The controlgestures may be reconfigured using the keyboard 108 or other inputdevice on the portable data reader 100 using the same or similarprogramming techniques and skills that were used to originally assignthe control gestures.

In other embodiments, the touch screen display 112 may be programmed toinclude a selectable reassignment option for quickly reassigning controlgestures as desired, allowing for personal customization by the user ororganization. In such embodiments, the operator may simply select thereassignment option, select the reading engines 102 or decodingparameters that are to be reassigned, apply a new control gesture on thetouch screen display 112 (or scroll through and select a new controlgesture from a menu of available control gestures) to reassign thechosen engine and/or decoding parameters, and thereafter save thereassigned settings. In other embodiments, the keyboard 108 may includea reassignment key that the operator can depress or trigger and thenreassign settings using the keyboard 108 as desired. The portable datareader 100 may or may not need to be rebooted to incorporate thereassigned control gestures depending on its configuration.

Next, in step 260, once the proper reading engine 102 and decodingparameters have been selected and properly configured in the portabledata reader 100, the operator aims the portable data reader toward theobject or scan zone to capture the data. In some embodiments, the datareader 100 may include or project a visual aid, such as a green spot orother visible pattern, to assist the operator in properly aiming thedata reader 100 at the object or scan zone.

In step 270, after ensuring that the portable data reader 100 has anunobstructed view or is within proper range of the target data, theoperator triggers the portable data reader 100 to capture the data. Insome embodiments, triggering may be activated automatically as a resultof the applied control gesture.

In step 280, the operator monitors the portable data reader 100 toensure that the proper data has been captured. Step 280 may beaccomplished in several ways. For instance, in one embodiment, theportable data reader 100 may include an audible signal to denote thatdata has or has not been captured. For example, the data reader 100 mayemit a first tone (e.g., a “beep” tone) to denote that data has beencaptured and a second tone (e.g., a “bonk” tone) to denote that data hasfailed to be captured. In another embodiment, the portable data reader100 may include (separately or in addition to the audible signal(s)):(1) a light indicator that changes color (e.g., green for a good readand red for a bad read) to indicate whether the data has been readsuccessfully; and/or (2) a message or an image on the touch screendisplay 112 to indicate whether the read was good or bad. In otherembodiments, other suitable notification techniques may be used.

In step 290, the operator, using an indicator mode similar to thosedescribed above or by another suitable method, then determines whetherthe data was properly captured. If the data was properly captured, thenthe operator may set that item aside and continue processing anyremaining items. If the data was not properly captured, then theoperator may revert back to step 260 for a subsequent attempt atcapturing the data. In some instances, the operator may opt to revertback to step 240, such as if the operator determines that the problemoccurred as a result of selecting the improper reading engine 102 ordecoding parameters.

In some embodiments, the data reader 100 may be programmed to continuewith the selected reading engine 102 and decoding parameters until theoperator takes affirmative steps to change the settings. If at any pointthe operator desires to change the reading engine 102 or the decodingparameters, the operator may return to step 240 to apply a differentcontrol gesture to reconfigure the portable data reader 100 to thedesired settings. In such instances, the portable data reader 100 mayinclude a reconfiguration option on the touch screen display 112 or areconfiguration button on the keyboard 108 to allow the operator toinitiate the reconfiguration process when desired. During thereconfiguration process, the operator may change the reading engine 102or the decoding parameters by applying a different control gestureassociated with the desired reading engine 102.

In some embodiments, to avoid unintended or improper detection of areconfiguration command, the data reader 100 may require a confirmationresponse from the operator to verify that a reconfiguration of the datareader 100 is desired. In other embodiments, the data reader 100 mayinclude a separate locking feature so that inadvertent swipes or contactwith the touch screen display 112 during the scanning or reading processdo not change the reading engine 102. Similarly, in the embodimentsusing the tilt sensor 142, the portable data reader 100 may include asimilar locking function to avoid switching reading engines 102 when theportable data reader 100 is moved during the reading process.

It should be understood that while the steps in the method 200 arepresented and described in a particular order, the order is forconvenience only and is not meant to be limiting. In some embodiments,the steps may be performed in an order different than what is specifiedherein. In addition, the method 200 may include additional steps andfeatures other than those included herein. In some embodiments, themethod 200 may combine certain steps. For example, steps 210 and 220 maybe combined into one configuration step where the reading engine 102 isconfigured with the various decoding parameters and filters, and as partof that configuration step, the decoding parameters and filters includeinstructions for assigning a corresponding control gesture. As anotherexample, steps 230, 240 and 270 may be combined into one step whereinapplying the control gesture on the touch screen display 240 alsoautomatically activates and triggers the portable data reader 100. Inother embodiments, the method 200 may omit certain steps, such as promptstep 250.

FIG. 3 is a flow chart illustrating a method 300 for data reading by theportable data reader 100 according to one embodiment. With reference toFIG. 3, at step 310, the portable data reader 100 determines whetherdecoding parameters for the reading engine(s) 102 are available to thedata reader 100. To determine whether decoding parameters are available,the processing unit 104 may search memory 116, interface 122, and/orconnector 109 to determine whether any decoding parameters are storedtherein. The decoding parameters may be similar to those described inrelation to method 200 and may include, for example, instructions formaximum and minimum lengths of 1D codes, 2D codes, and RFID tags,instructions for reading data of a specific length, and othertraditional symbology and RFID tag characteristics.

In some embodiments, the processing unit 104 (or other component of thedata reader 100) may also search a separate device, such as a memorycard or disk drive connected to the data reader 100. Further, theprocessing unit 104 may also communicate (e.g., via a wired or wirelessconnection) with a remote device or computer to determine whetherdecoding parameters are stored remotely from the data reader 100 and areaccessible to the data reader 100, such as for running the decodingparameters remotely or for downloading the decoding parameters to thedata reader 100.

Once the data reader 100 has determined that decoding parameters for thereading engine(s) 102 are available and accessible to the data reader100, at step 320, the portable data reader 100 determines whethercorresponding control gestures are associated with the reading engine(s)102 and associated decoding parameters. The portable data reader 100 mayrun a similar search protocol as described above with respect to step310 to determine whether control gestures are stored therein or storedon a remote system accessible to the data reader 100.

At step 330, after confirmation that decoding parameters for the readingengine(s) 102 and associated control gestures are accessible to the datareader 100, the data reader 100 activates in response to an operator'saction of powering on, rebooting, or resetting the portable data reader100. In some embodiments, the data reader 100 may activate in responseto tapping the touch screen display 112.

Once activated, at step 340, the portable data reader 100 detects ordetermines whether a control gesture has been applied. Step 340 may beaccomplished in several ways. In some embodiments, the displaycontroller 110 and/or the processing unit 104 may be configured todetermine whether a stylus instrument, a finger, or other pointingdevice has contacted the touch screen display 112. The displaycontroller 110 and/or processing unit 104 may be programmed to ignoreintermittent or incidental contact (e.g., constant contact is notmaintained for a minimum time threshold) with the touch screen display112.

In other embodiments, the processing unit 104 may be in communicationwith a tilt sensor 142 to detect whether the portable data reader 100has been tilted or moved in any direction or shaken, and to determinewhether any of these control gestures have been assigned to a readingengine 102 and/or a set of decoding parameters. If movement has not beenassigned as a control gesture, the data reader 100 may ignore movementand tilting control gestures. In yet another embodiment, the processingunit 104 is in communication with the keyboard 108 to determine whethercontrol gesture inputs have been entered on the keyboard 108.

In any event, once the portable data reader 100 detects or determinesthat a control gesture has been applied, the display controller 110and/or processing unit 104 may communicate with the memory 116,interface 122, connector 109, or other system (e.g., a remote computer)to determine whether the detected control gesture corresponds with astored control gesture for a reading engine 102 and/or specific decodingparameters. The control gestures referenced in relation to step 340 maybe the same as or similar to those described with respect to method 200.

In some embodiments, the touch screen display 112 may be programmed topresent a menu of options including the various reading engines 102 forwhich the data reader 100 is capable of running and the various decodingparameters that are available. The display 112 may also present a legendor other feature visible to the operator with information regarding theassigned control gestures for all or some of the reading engine(s) 102and decoding parameter configurations.

At step 350, after the operator has applied a control gesture, thedisplay 112 may be configured to present the selected reading engine 102and associated decoding parameters for the operator's review. Thedisplay 112 may further include a prompt to the operator to allow theoperator to confirm or deny that the displayed settings are correct.

At step 360, if the operator indicates that the proper reading engine102 and/or the associated decoding parameters are not as desired, themethod 300 may revert back to step 340 where the portable data reader100 detects the applied control gesture. In such cases, the operator mayreapply the control gesture or apply a new control gesture to correctthe selection. In some embodiments, the operator may reprogram and/orreconfigure the data reader 100 to change the stored assigned controlgestures or assign new control gestures to the reading engines 102 anddecoding parameters.

Once the operator indicates that the proper selection has been made, atstep 370, the portable data reader 100 determines whether a trigger hasbeen activated to initiate a data capture event. In some embodiments,the trigger may be a mechanism (e.g., a lever or button) on the datareader 100 that may be manually depressed or otherwise actuated, or itmay be a prompt on the display 112 that may be activated by touch, orany other suitable mechanism for initiating the data reader 100 tocapture data of an object.

At step 380, the portable data reader 100 indicates whether a read wassuccessful. In some embodiments, the portable data reader 100 may emit abeeping sound or other good/bad read tone, or may trigger a lightindicator, or display a message on the display 112 alerting the operatorof the read status. If the read was bad, the method 300 may revert backto step 370 or any of the previous steps to reattempt the read.

If the read was successful, at step 390, the portable data reader 100will decode the captured data based on the selected reading engine 102and decoding parameters. Thereafter, the portable data reader 100 maystore the decoded data in any suitable medium, such as in memory 116, ininternal hard disk drive 124, on an external input device 107, or mayinstead send the decoded data to another computer or device incommunication with the portable data reader 100. After a successful readand decoding, the method 300 may revert back to step 340 to processsubsequent items. In some instances, the data reader 100 may simplydefault to the last chosen reading engine 102 and decoding parametersuntil a different control gesture is applied to reconfigure the datareader 100.

It should be understood that while the steps in the method 300 arepresented and described in a particular order, the order is forconvenience only and is not meant to be limiting. In some embodiments,the steps may be performed in an order different than what is specifiedherein. In addition, the method 300 may include additional steps andfeatures other than those included herein. In some embodiments, themethod 300 may combine certain steps. For example, steps 310 and 320 maybe combined into one step where the portable data reader 100 determinessubstantially simultaneously whether decoding parameters and associatedcontrol gestures are stored therein. In some embodiments, steps in themethod 300 may be skipped altogether. For example, the portable datareader 100 may not display the selected reading modes or seek theoperator's input in steps 340 and 350 and instead await instructionstriggering the data reader 100 to capture data in step 370 after itdetermines that a control gesture was applied in step 330.

The terms and descriptions used above are set forth by way ofillustration only and are not meant as limitations. Those skilled in theart will recognize that many variations can be made to the details ofthe above-described embodiments without departing from the underlyingprinciples of the invention. The scope of the present invention should,therefore, be determined only by the following claims.

1. A data reader for reading data from an object, the data readercomprising: a housing adapted for handheld operation; a reading engineassociated with a set of decoding instructions, wherein the readingengine is further associated with a control gesture unique to thereading engine; a touch screen supported on the housing, wherein thetouch screen includes a touch screen surface, and wherein the readingengine is selectable by applying the control gesture to the touch screensurface; and a processing subsystem communicatively coupled with thereading engine and the touch screen, wherein, in response to detectingthat the control gesture has been applied to the touch screen, theprocessing subsystem configures the data reader with the reading enginebased on the control gesture applied to the touch screen surface.
 2. Thedata reader of claim 1, further comprising: a plurality of readingengines each associated with a set of decoding instructions, whereineach of the plurality of reading engines is further associated with oneof a plurality of control gestures to uniquely distinguish each of theplurality of reading engines from one another, and wherein theprocessing subsystem is further configured to: detect that the controlgesture has been applied to the touch screen surface; and configure thedata reader with one of the plurality of reading engines based on thecontrol gesture applied to the touch screen surface.
 3. The data readerof claim 1, wherein the control gesture includes a scrolling motionacross the touch screen surface.
 4. The data reader of claim 1, whereinthe processing subsystem is further configured to initiate the readingengine to trigger a reading event upon determining that the controlgesture has been applied to the touch screen.
 5. The data reader ofclaim 2, wherein the plurality of reading engines includes a 1D barcodereading engine and a 2D barcode reading engine, wherein the 1D barcodereading engine is associated with a single swipe control gesture and the2D barcode reading engine is associated with a multi-touch swipe controlgesture, and wherein the 1D barcode reading engine is selectable byapplying the single swipe control gesture to the touch screen surfaceand the 2D barcode reading engine is selectable by applying themulti-touch swipe control gesture to the touch screen surface.
 6. Thedata reader of claim 2, wherein the touch screen is configured todisplay a menu presenting each of the plurality of reading engines thatare selectable via the touch screen surface.
 7. The data reader of claim2, further comprising an accelerometer coupled to the housing and incommunication with the processing subsystem, wherein the accelerometeris configured to detect physical movement of the data reader, andwherein the processing subsystem is further configured to determinewhether the accelerometer has detected physical movement of the datareader.
 8. The data reader of claim 7, wherein at least one of theplurality of reading engines is associated with the accelerometer and isselectable via activation of the accelerometer, and wherein theprocessing subsystem is further configured to determine whether one ofthe plurality of reading engines has been selected via activation of theaccelerometer.
 9. The data reader of claim 8, wherein the controlgesture includes tilting the data reader.
 10. A data reader for readingdata from an object, the data reader comprising: a housing; a touchscreen supported on the housing, the touch screen having a touch screensurface and configured to display a menu of data reading operations tothe operator that are selectable by applying a control gesture to thetouch screen surface, wherein the menu of data reading operationsincludes a first data reading mode having a first set of decodingparameters associated with decoding an optical code and a second datareading mode having a second set of decoding parameters associated withdecoding an RFID tag; one or more reading engines configured to read atleast one of optical code data and RFID tag data; and a processingsubsystem coupled to the touch screen and the one or more readingengines, the processing subsystem configured to: determine whether oneof the data reading operations has been selected from the menu of datareading operations on the touch screen, thereby resulting in a selecteddata reading operation; and upon determining that one of the datareading operations has been selected, configure the one or more datareading engines to execute the selected data reading operation.
 11. Thedata reader of claim 10, wherein the touch screen surface includes afirst region associated with the first data reading mode and a secondregion associated with the second data reading mode, and wherein thefirst data reading mode is selectable by applying the control gesturesuch that contact is made along the first region of the touch screensurface and the second data reading mode is selectable by applying thecontrol gesture such that contact is made along the second region of thetouch screen surface.
 12. The data reader of claim 11, wherein theprocessing subsystem configured to determine that one of the datareading operations has been selected from the menu of data readingoperations further includes the processing subsystem configured todetermine whether the control gesture has been made along the firstregion or the second region.
 13. The data reader of claim 10, furthercomprising an accelerometer coupled to the housing and in communicationwith the processing subsystem, wherein the accelerometer is configuredto detect physical movement of the data reader, and wherein theprocessing subsystem is further configured to determine whether theaccelerometer has detected physical movement of the data reader.
 14. Thedata reader of claim 13, wherein a third data reading mode having athird set of decoding parameters is associated with the accelerometerand selectable via activation of the accelerometer, and wherein theprocessing subsystem is further configured to determine whether theaccelerometer has been activated and, in response, configure the readingengine to execute instructions associated with the third data readingmode.
 15. The data reader of claim 10, wherein the first data readingmode includes a 1D barcode reading mode and a 2D barcode reading mode,wherein the 1D barcode reading mode is associated with a single swipetouch screen control gesture in the form of a roman numeral one and the2D barcode reading mode is associated with a simultaneous dual swipetouch screen control gesture in the form of a roman numeral two, andwherein the 1D barcode reading mode is selectable by applying the singleswipe control gesture to the touch screen surface and the 2D barcodereading mode is selectable by applying the dual swipe control gesture tothe touch screen surface.
 16. A method for data reading with a datareader having a reading engine for reading data from an object, themethod comprising the steps of: associating, by the data reader, acontrol gesture with a reading engine; detecting, by the data reader,application of the control gesture on a touch screen surface of the datareader; determining, by the data reader, that the control gesturecorresponds to the reading engine; configuring, by the data reader, thereading engine; in response to activation of a triggering mechanism onthe data reader, capturing, by the data reader, information from a datasource; and decoding, by the data reader, the information captured fromthe data source using the reading engine.
 17. The method of claim 16,wherein the data reader includes a plurality of reading engines, andwherein: the associating step includes associating, by the data reader,a unique control gesture with each of the plurality of reading engines;the determining step includes determining, by the data reader, that theunique control gesture corresponds to one of the plurality of readingengines, thereby resulting in a selected reading engine; the configuringstep includes configuring, by the data reader, the selected readingengine; and the decoding step includes decoding, by the data reader, theinformation captured from the data source using the selected readingengine.
 18. The method of claim 16, further comprising the step ofpresenting on the touch screen display of the data reader a menu of eachof the one or more reading engines available for selection and thecontrol gesture input associated with each of the one or more readingengines.
 19. The method of claim 17, wherein the data reader furtherincludes an accelerometer and the method further comprises the steps of:associating, by the data reader, the accelerometer with at least one ofthe plurality of reading engines; and determining, by the data reader,whether the accelerometer has been activated by physical movement of thedata reader.
 20. The method of claim 16, further comprising the step ofindicating, by the data reader, whether the data has been captured.